Flink DataStream与Transformation
DataStream 如何转换为 Transformation ?
简介
本文就以中WordCount为例
java
1 | final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); |
DataStreamSource
java
1 | public DataStreamSource( |
- 调用 fromElements 算子,会构造出 DataStreamSource, LegacySourceTransformation(SourceTransformation)
- 最后传递给父类 DataStream, 并赋值, 后续调用的 flatMap, keyBy, addSink 等算子都是调用 DataStream 的API
FlatMap
java
1 | protected <R> SingleOutputStreamOperator<R> doTransform( |
- getExecutionEnvironment() 方法就是上节传递给 DataStream 的 env
- addOperator 就是添加list元素
keyBy
java
1 | KeyedStream( |
- keyBy 操作会重新构造构造 DataStream, 并把上游的 env 传递给新的 DataStream
addSink
java
1 | public DataStreamSink<T> addSink(SinkFunction<T> sinkFunction) { |
- 与 flatMap 类似
execute
- 调用 execute 方法后会构造StreamGraph
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Asura7969 Blog!